<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!--<!DOCTYPE html>-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html" >

    <ui:composition template="Master.xhtml"
                    xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:f="http://java.sun.com/jsf/core"
                    xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:ui="http://java.sun.com/jsf/facelets"           
                    xmlns:p="http://primefaces.org/ui">
        <ui:define name="title">Comprobante</ui:define>
        <ui:insert name="cssk"></ui:insert> 
        <ui:define name="scritpK">
        </ui:define> 
        <ui:define name="content">
            
            <h:form id="frmComprobante">
                <p:toolbar>
                    <f:facet name="left">
                        <p:button id="btnVolver" icon="ui-icon-arrowreturnthick-1-w" value="Volver" outcome="ListaComprobante"/>
                        <p:commandLink value="Agregar Campos" action="#{comprobanteBean.addComprobanteCampo}" update="pnlMain"/>
                    </f:facet>
                    <f:facet name="right">
                            <p:commandButton value="Imprimir" action="#{comprobanteReportsBean.execute}" icon="ui-icon-print" ajax="false">
                                <f:setPropertyActionListener value="#{comprobanteBean.comprobanteDTO}" target="#{comprobanteReportsBean.comprobanteDTO}" />
                            </p:commandButton>
                            <p:commandButton id="btnGuardar" value="Guardar Comprobante" icon="ui-icon-disk" action="#{comprobanteBean.saveComprobante()}" update="pnlMain,gwlComprobante" process="@this" ajax="false"/>
                    </f:facet>
                </p:toolbar>
                <br></br>
                <h:inputHidden value="#{comprobanteBean.comprobanteDTO.idComprobante}"/>
                <p:fieldset legend="Editar Comprobante">
                <p:growl id="gwlComprobante" showDetail="true" sticky="true"/>
                <p:panel id="pnlMain">
                    <h:panelGrid style="margin: 0 auto;">
                        <h:panelGrid cellpadding="4" columns="2">
                            <p:outputLabel for="txtIdVen" value="Vendedor:"/>
                            <h:panelGrid>
                            <p:autoComplete id="txtIdVen" dropdown="true" value="#{comprobanteBean.vendedorDTO}" completeMethod="#{vendedorBean.completeVendedor}"
                                            var="vendedorDTO" itemLabel="#{vendedorDTO.nombre}" itemValue="#{vendedorDTO}" converter="vendedorDTOConverter" forceSelection="true" rendered="#{comprobanteBean.habBusquedaVendedor==true}">
                                <p:ajax event="itemSelect" listener="#{comprobanteBean.agregarVendedor()}" update="txtVenNombre"/> 
                                <p:column>
                                    <h:outputText value="#{vendedorDTO.idUsuario}"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{vendedorDTO.nombre}"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{vendedorDTO.apellido}"/>
                                </p:column>
                            </p:autoComplete>
                            <p:inputText id="txtVenNombre" value="#{comprobanteBean.comprobanteDTO.vendedorDTO.nombre}" rendered="#{!comprobanteBean.habBusquedaVendedor}">
                            </p:inputText>
                            <p:commandLink value="#{comprobanteBean.valueButtonVendedor}" actionListener="#{comprobanteBean.buscarVendedor()}" update="pnlMain"></p:commandLink>
                            </h:panelGrid>
                            <p:selectOneMenu id="txtTipoComp" value="#{comprobanteBean.comprobanteDTO.tipoComprobante}" style="width:125px" disabled="#{comprobanteBean.comprobanteDTO.numComp != null}">
                                <f:selectItem itemLabel="Selecciona" itemValue=""/>
                                <f:selectItems value="#{dataBean.tipoComprobantes}"/>
                                <p:ajax listener="#{comprobanteBean.generateNumComp()}" update="pnlResumen,txtNumComp,txtNumComp1"/> 
                            </p:selectOneMenu>
                            <p:outputLabel id="txtNumComp" value="N° Comprobante: #{comprobanteBean.comprobanteDTO.numComp}"/>
                            <p:commandButton value="Generar Guia" icon="ui-icon-search" actionListener="#{comprobanteBean.generateNumGuia()}" update="txtNumComp1"  disabled="#{comprobanteBean.comprobanteDTO.numGuia != null}"/>
                            <p:outputLabel id="txtNumComp1" value="N° Guía: #{comprobanteBean.comprobanteDTO.numGuia}"/>
                            <p:outputLabel for="txtIdCliente" value="Numero de Documento:"/>
                            <h:panelGrid>
                            <p:autoComplete id="txtIdCliente" dropdown="true" value="#{comprobanteBean.clienteDTO}" completeMethod="#{clienteBean.completeCliente}"
                                            var="clienteDTO" itemLabel="#{clienteDTO.idClienteDes}" itemValue="#{clienteDTO}" converter="clienteDTOConverter" forceSelection="true" rendered="#{comprobanteBean.habBusqueda}">
                                <p:ajax event="itemSelect" listener="#{comprobanteBean.agregarCliente()}" update="txtNombre1,txtDireccion1"/> 
                                <p:column>
                                    <h:outputText value="#{clienteDTO.idClienteDes}"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{clienteDTO.nombre}"/>
                                </p:column>
                                 <p:column>
                                    <h:outputText value="#{clienteDTO.direccion}"/>
                                </p:column>
                            </p:autoComplete>
                            <p:inputText id="txtIdCliente2" value="#{comprobanteBean.comprobanteDTO.clienteDTO.idClienteDes}" rendered="#{!comprobanteBean.habBusqueda}"/>
                            <p:commandLink value="#{comprobanteBean.valueButtonCliente}" actionListener="#{comprobanteBean.buscarCliente()}" update="pnlMain"></p:commandLink>
                            </h:panelGrid>
                            <p:outputLabel id="txtNombre1" value="#{comprobanteBean.comprobanteDTO.clienteDTO.nombre}" rendered="#{comprobanteBean.habBusqueda}"/>
                            <p:inputText id="txtNombre" value="#{comprobanteBean.comprobanteDTO.clienteDTO.nombre}" rendered="#{!comprobanteBean.habBusqueda}">
                            </p:inputText>
                            <p:outputLabel id="txtDireccion1" value="#{comprobanteBean.comprobanteDTO.clienteDTO.direccion}" rendered="#{comprobanteBean.habBusqueda}"/>
                            <p:inputText id="txtDireccion" value="#{comprobanteBean.comprobanteDTO.clienteDTO.direccion}" rendered="#{!comprobanteBean.habBusqueda}">
                            </p:inputText>
                            <p:selectOneMenu id="txtEstado" value="#{comprobanteBean.comprobanteDTO.estado}" style="width:125px">
                                <f:selectItems value="#{dataBean.estado}"/>
                            </p:selectOneMenu>
                            <p:outputLabel id="txtFecha" value="#{comprobanteBean.comprobanteDTO.fecha}">
                                <f:convertDateTime pattern="dd-MM-yyyy" />
                            </p:outputLabel>
                            <p:outputLabel for="txtObservac" value="Observación:"/>
                            <p:inputTextarea id="txtObservac" value="#{comprobanteBean.comprobanteDTO.observac}">
                            </p:inputTextarea>
                            <h:panelGroup rendered="#{not empty comprobanteBean.labels}">
                            <ui:repeat value="#{comprobanteBean.labels}" varStatus="loop" var="label">
                                <tr>
                                <td>
                                <p:inputText id="label" value="#{label.nameLabel}" rendered="#{label.nameLabel == null || label.nameLabel == ''}">
                                <p:watermark for="label" value="Label" />
                                </p:inputText>
                                <p:outputLabel for="label" value="#{label.nameLabel}:" rendered="#{label.nameLabel != ''}"/>
                                </td>
                                <td>
                                <p:inputText id="value" value="#{label.valueLabel}">
                                <p:watermark for="value" value="Value" />
                                </p:inputText>
                                </td>
                                </tr>
                            </ui:repeat>
                            </h:panelGroup>
                            <p:watermark for="txtNombre" value="Razón Social"></p:watermark>
                            <p:watermark for="txtDireccion" value="Dirección"></p:watermark>
                        </h:panelGrid>
                    </h:panelGrid>
                    <br></br>
                    <p:panel id="pnlDetalle" rendered="#{!comprobanteBean.habEdicion}">
                        <h:panelGrid id="grdDetalle" cellpadding="4" columns="7" style="margin: 0 auto;">
                            <p:outputLabel for="txtIdArticulo" value="Código:"/>
                            <p:autoComplete id="txtIdArticulo" value="#{comprobanteBean.comprobanteDetalleDTO.articuloDTO}" completeMethod="#{articuloBean.completeArticulo}"
                                    var="articuloDTO" itemLabel="#{articuloDTO.code}" itemValue="#{articuloDTO}" converter="articuloDTOConverter" forceSelection="true">
                                <p:ajax event="itemSelect" listener="#{comprobanteBean.updatePrecio()}" update="txtPrecioVenta"/> 
                                <p:column>
                                    <h:outputText value="#{articuloDTO.code}"/>
                                </p:column>
                                <p:column>
                                    <h:outputText value="#{articuloDTO.descripcion}"/>
                                </p:column>
                                 <p:column>
                                    <h:outputText value="#{articuloDTO.stock}"/>
                                </p:column>
                            </p:autoComplete>
                            <p:outputLabel for="txtCant" value="Cantidad:"/>
                            <p:inputText id="txtCant" value="#{comprobanteBean.comprobanteDetalleDTO.cant}">
                                <f:convertNumber type="number"/>
                            </p:inputText>
                            <p:outputLabel for="txtPrecioVenta" value="Precio:"/>
                            <p:inputText id="txtPrecioVenta" value="#{comprobanteBean.comprobanteDetalleDTO.pvp}">
                                <f:convertNumber type="currency" currencySymbol=""/>
                            </p:inputText>
                            <p:commandButton id="btnAgregar" value="Agregar" action="#{comprobanteBean.agregarItem()}" update="pnlMain,gwlComprobante"/>
                            <p:watermark for="txtIdArticulo" value="buscar..."></p:watermark>
                        </h:panelGrid>
                        
                    </p:panel>
                    <br></br>
                    <p:dataTable id="tblDetalle" var="det" value="#{comprobanteBean.comprobanteDTO.comprobantedetalles}">
                        <h:inputHidden value="#{det.numDet}" />
                        <p:column headerText="Cantidad">
                            <h:outputText value="#{det.cant}" />
                        </p:column>
                        <p:column headerText="Producto">
                            <h:outputText value="#{det.articuloDTO.code}" />
                        </p:column>
                        <p:column headerText="Descripción">
                            <h:outputText value="#{det.articuloDTO.descripcion}" />
                        </p:column>
                        <p:column headerText="Precio">
                            <h:outputText value="#{det.pvp}" />
                        </p:column>
                        <p:column headerText="Remover" width="10%" rendered="#{!comprobanteBean.habEdicion}">
                        <p:commandButton action="#{comprobanteBean.onCancel}" icon="ui-icon-minusthick" process="@all" update="tblDetalle,:frmComprobante:pnlResumen">
                            <f:setPropertyActionListener value="#{det}" target="#{comprobanteBean.comprobanteDetalleDTO}" />
                            <p:confirm header="Confirmación" message="¿Estás seguro?" icon="ui-icon-alert" />
                        </p:commandButton>
                        </p:column>
                    </p:dataTable>
                    <p:confirmDialog global="true" showEffect="fade" hideEffect="explode">
                        <p:commandButton value="Si" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
                        <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
                    </p:confirmDialog>
                    <br></br>
                    <p:panel id="pnlResumen">
                        <h:panelGrid id="grdResumen" columns="2" style="text-align: right">
                            <p:outputLabel for="txtSubtotal" value="SubTotal:" rendered="#{comprobanteBean.isFactura()}"/>
                            <p:outputLabel id="txtSubtotal" value="#{comprobanteBean.comprobanteDTO.subTotal}" rendered="#{comprobanteBean.isFactura()}">
                                <f:convertNumber pattern="#0.00"/>
                            </p:outputLabel>
                            <p:outputLabel for="txtTotIva" value="IGV:" rendered="#{comprobanteBean.isFactura()}"/>
                            <p:outputLabel id="txtTotIva" value="#{comprobanteBean.comprobanteDTO.totIva}" rendered="#{comprobanteBean.isFactura()}">
                                <f:convertNumber pattern="#0.00"/>
                            </p:outputLabel>
                            <p:outputLabel value="Total:"/>
                            <p:outputLabel id="txtTotal" value="#{comprobanteBean.comprobanteDTO.total}">
                                <f:convertNumber pattern="#0.00"/>
                            </p:outputLabel>
                        </h:panelGrid>
                    </p:panel>
                </p:panel>
                </p:fieldset>
            </h:form>

        </ui:define> 


    </ui:composition>
</html>